package com.pehulja.mmdo.coursework.math.old;

import java.io.Console;

public class Term  { // �����, ����������� ��������� ��������
	private double factor; // ����������� ��� ����������
	private int degree; // ������� ����������
	public double getFactor()
	{
		return factor;
	}
	public void setFactor(double factor)
	{
		this.factor = factor;
	}
	public int getDegree() 
	{
		return degree;
	}
	public void setDegree(int degree) 
	{
		this.degree = degree;
	}
	public Term(Term temp) // ����������� �����������
	{
		this.factor=temp.factor;
		this.degree=temp.degree;
	}
	public Term(double factor, int degree) // ����������� ����������� �������� ������������ � �������
	{
		this.factor=factor;
		this.degree=degree;
	}
	public Term() // �����������, ������������� ���� ����� � �������
	{
		this.factor=Double.parseDouble(System.console().readLine());
		this.degree=Integer.parseInt(System.console().readLine());
	}
	public Term(String temp) // ����������� ��������� ������ ���� m*x^k
	{
		if(temp.equals("x"))
		{
			factor=1;
			degree=1;
		}
		else
		{
			String[] tokens=temp.split("[/d]?x[{/^/d}]?");
			factor=((tokens[0].equals(""))?1:tokens[0].equals("-")?-1:Double.parseDouble(tokens[0]));
			degree=(int)((tokens.length>1)?Double.parseDouble(tokens[1]):(temp.charAt(temp.length()-1)=='x')?1:0);
		}
	}
	public String toString() { // ����� ���������� ��������� ������������� ���������� 
		StringBuffer t=new StringBuffer("");
		if(factor!=0)
		{
			t.append((Math.abs(factor)==1 && degree!=0)?factor<0?"-":"":factor);
			if(factor!=0)
				t.append(degree==1?"x":degree!=0?"x^"+degree:"");			
		}
		else
			return "0";
		
		return t.toString();
	}
	
	
}
